package com.secxiot.provider.task.dao;

import com.secxiot.provider.task.entity.TaskSOS;
import com.secxiot.provider.task.entity.TaskSOSExample;
import com.secxiot.provider.task.vo.TaskSOSStatusVo;
import com.secxiot.provider.task.vo.TaskSosVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface TaskSOSDao {
    int countByExample(TaskSOSExample example);

    int deleteByExample(TaskSOSExample example);

    int deleteByPrimaryKey(Long id);

    int insert(TaskSOS record);

    int insertSelective(TaskSOS record);

    List<TaskSOS> selectByExample(TaskSOSExample example);

    TaskSOS selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") TaskSOS record, @Param("example") TaskSOSExample example);

    int updateByExample(@Param("record") TaskSOS record, @Param("example") TaskSOSExample example);

    int updateByPrimaryKeySelective(TaskSOS record);

    int updateByPrimaryKey(TaskSOS record);

    TaskSOS selectByTaskId(@Param("taskId") Long taskId, @Param("confirmStatus") String confirmStatus, @Param("taskType") String taskType);

    TaskSOS selectUnfinishedByUserId(@Param("userId") Long userId);

    TaskSOSStatusVo selectLastStatusByUserId(@Param("userId") Long userId);

    TaskSOSStatusVo selectStatusByUserIdAndTaskId(@Param("userId")Long userId, @Param("taskId")Long taskId);

    TaskSosVo selectSosByTaskId(Long taskId);

}